package redisinit

import (
	"api/appconfig"
	"github.com/go-redis/redis/v8"
)

var Rdb *redis.Client

func InitRedis() {
	redisConf := appconfig.AppConf.RedisConfig
	Rdb = redis.NewClient(&redis.Options{
		Addr:     redisConf.Addr,
		Password: redisConf.Password, // no password set
		DB:       redisConf.Db,       // use default DB
	})
}

//func AddCart(userId, goodsId, goodsNum int, goodsTitle, goodsCover string, goodsPrice float64) error {
//	// key := cart:user_id_1:goods_id_1
//	key := fmt.Sprintf("cart:user_id_%d:goods_id_%d", userId, goodsId)
//	return RedisClient.HMSet(context.Background(), key, map[string]interface{}{
//		"goodsId":    goodsId,
//		"goodsTitle": goodsTitle,
//		"goodsPrice": goodsPrice,
//		"goodsNum":   goodsNum,
//		"goodsCover": goodsCover,
//		"Checked":    1,
//	}).Err()
//}
//
//// 查询购物车是否存在
//func CheckCart(userId int64, goodsId int64) bool {
//	key := fmt.Sprintf("cart:%d:%d", userId, goodsId)
//	return RedisClient.Exists(context.Background(), key).Val() == 1
//}
//
//// 修改购物车中的商品数量
//func UpdateCartNum(userId int64, goodsId int64, num int64) error {
//	key := fmt.Sprintf("cart:%d:%d", userId, goodsId)
//	return RedisClient.HSet(context.Background(), key, "num", num).Err()
//}
//
//// 购物车列表
//func CartList(userId int) (cartList []*cart.CartItem, err error) {
//	key := fmt.Sprintf("cart:user_id_%d:*", userId)
//	// 获取所有的商品 key
//	keys := RedisClient.Keys(context.Background(), key).Val()
//
//	for _, v := range keys {
//		goodsInfo := RedisClient.HGetAll(context.Background(), v).Val()
//		goodsId, _ := strconv.Atoi(goodsInfo["goodsId"])
//		goodsNum, _ := strconv.Atoi(goodsInfo["goodsNum"])
//		Checked, _ := strconv.Atoi(goodsInfo["Checked"])
//		goodsTitle := goodsInfo["goodsTitle"]
//		price, _ := strconv.ParseFloat(goodsInfo["goodsPrice"], 64)
//
//		cartList = append(cartList, &cart.CartItem{
//			UserId:     int64(userId),
//			GoodsId:    int64(goodsId),
//			Num:        int64(goodsNum),
//			GoodsTitle: goodsTitle,
//			Checked:    int64(Checked),
//			GoodsPrice: price,
//		})
//	}
//	return
//}
//
//// 清空购物车
//func ClearCart(userId int) (err error) {
//	key := fmt.Sprintf("cart:user_id_%d:*", userId)
//	// 获取所有的商品 key
//	keys := RedisClient.Keys(context.Background(), key).Val()
//
//	for _, v := range keys {
//		RedisClient.Del(context.Background(), v)
//	}
//	return
//}
//
//// 统计购物车选中数量及金额
//func CartTotal(userId int) (TotalAmount float64, TotalCount int) {
//	key := fmt.Sprintf("cart:user_id_%d:*", userId)
//	// 获取所有的商品 key
//	keys := RedisClient.Keys(context.Background(), key).Val()
//
//	for _, v := range keys {
//		goodsInfo := RedisClient.HGetAll(context.Background(), v).Val()
//		price, _ := strconv.ParseFloat(goodsInfo["goodsPrice"], 64)
//		num, _ := strconv.Atoi(goodsInfo["goodsNum"])
//
//		TotalCount += num
//		TotalAmount += price * float64(num)
//	}
//	return
//}
//
//// 全选/取消全选
//func CheckAllCart(userId int64, checked int64) {
//	key := fmt.Sprintf("cart:%d:*", userId)
//	keys := RedisClient.Keys(context.Background(), key).Val()
//	for _, v := range keys {
//		RedisClient.HSet(context.Background(), v, "checked", checked).Err()
//	}
//}
